Genome engineering can refer to altering the genome by deleting, inserting, mutating, or substituting specific nucleic acid sequences. The altering can be gene or location specific. Genome engineering can use Argonaute proteins to cut a nucleic acid thereby generating a site for the alteration. Prokaryotic Argonautes are prokaryotic homologs of eukaryotic Argonaute proteins, which are key enzymes in RNA interference pathways. An Argonaute can bind and cleave a target nucleic acid by forming a complex with a designed nucleic acid-targeting nucleic acid. Cleavage can introduce double stranded breaks in the target nucleic acid. A nucleic acid can be repaired e.g. by endogenous non-homologous end joining (NHEJ) machinery. A piece of nucleic acid can be inserted. Engineering of non-genomic nucleic acid is also contemplated. Modifications of designed nucleic acid-targeting nucleic acids and Argonautes can introduce new functions to be used for genome engineering.